package logger

import (
	"context"
	"go.opentelemetry.io/otel/attribute"
	"go.opentelemetry.io/otel/trace"
	"time"
)

func setSpan(ctx context.Context, msg string) {
	span := trace.SpanFromContext(ctx)
	span.SetAttributes(attribute.String("time", time.Now().String()))
	span.AddEvent(msg)
}

func DebugC(ctx context.Context, msg string, fields ...Field) {
	std.Debug(msg, fields...)
	setSpan(ctx, msg)
}

func InfoC(ctx context.Context, msg string, fields ...Field) {
	std.Info(msg, fields...)
	setSpan(ctx, msg)
}

func WarnC(ctx context.Context, msg string, fields ...Field) {
	std.Warn(msg, fields...)
	setSpan(ctx, msg)
}

func ErrorC(ctx context.Context, msg string, fields ...Field) {
	std.Error(msg, fields...)
	setSpan(ctx, msg)
}

func PanicC(ctx context.Context, msg string, fields ...Field) {
	std.Panic(msg, fields...)
	setSpan(ctx, msg)
}

func FatalC(ctx context.Context, msg string, fields ...Field) {
	std.Fatal(msg, fields...)
	setSpan(ctx, msg)
}
